{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## RUL prediction using Long Short Term Memory (LSTM) network\n",
    "\n",
    "In this notebook, we will use LSTM to predict RUL of NASA's turbofan engine dataset FD003. We will show the implementation without going into the theory of LSTM."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tensorflow as tf\n",
    "from tensorflow.keras import layers\n",
    "from tensorflow.keras.models import Sequential\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import sklearn\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.metrics import mean_squared_error\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "np.random.seed(3321)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Tensorflow version:  2.3.0\n",
      "Numpy version:  1.18.5\n",
      "Pandas version:  1.0.5\n",
      "Scikit-learn version:  0.23.1\n"
     ]
    }
   ],
   "source": [
    "print(\"Tensorflow version: \", tf.__version__)\n",
    "print(\"Numpy version: \", np.__version__)\n",
    "print(\"Pandas version: \", pd.__version__)\n",
    "print(\"Scikit-learn version: \", sklearn.__version__)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Data Preprocessing\n",
    "\n",
    "We strongly encourage readers to go through the [dataset description and prreprocessing notebook](https://github.com/biswajitsahoo1111/rul_codes_open/blob/master/notebooks/cmapss_notebooks/CMAPSS_data_description_and_preprocessing.ipynb). In that notebook we have explained how data preprocessing functions work with simple examples. In this notebook we will only use those functions. So prior familiarity with these functions is an advantage. Below are the parameters that we will use for data preprocessing:\n",
    "\n",
    "* Degradation model: Piecewise linear\n",
    "* Early RUL: 125\n",
    "* Window length: 30\n",
    "* Shift: 1\n",
    "* Data scaling: Standard scaling and full dataset scaling.\n",
    "\n",
    "We will calculate two prediction scores on test data. In one case, we will take last 5 examples of test data for engine, calculate their predictions, and finally average those for each engine. In the second case, we will take only the last example of each engine and make predictions. The logic behind taking last 5 examples and averaging their predictions is to make the prediction robust against outliers. Due to some external factor, if our last example happens to be corrupted, its prediction outcome might be far off from the actual one. But if we average predictions from last 5 examples, we will get a more conservative estimate. \n",
    "\n",
    "In the following cell we will show boxplots of each column of training data. That will give us an idea about the values in different columns. If all the values in a column are constant, we drop those columns from our analysis.\n",
    "\n",
    "Readers can download the data from [here](https://ti.arc.nasa.gov/tech/dash/groups/pcoe/prognostic-data-repository/#turbofan). In the following cells, wherever data are read from a folder, readers should change the string to point to the respective folder from their system to run this notebook seamlessly. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1152x1512 with 21 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "train_data = pd.read_csv(\"/home/biswajit/data/cmapss_data/train_FD003.txt\", sep= \"\\s+\", header = None)\n",
    "plt.figure(figsize = (16, 21))\n",
    "for i in range(21):\n",
    "    temp_data = train_data.iloc[:,i+5]\n",
    "    plt.subplot(7,3,i+1)\n",
    "    plt.boxplot(temp_data)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def process_targets(data_length, early_rul = None):\n",
    "    \"\"\" \n",
    "    Takes datalength and earlyrul as input and \n",
    "    creates target rul.\n",
    "    \"\"\"\n",
    "    if early_rul == None:\n",
    "        return np.arange(data_length-1, -1, -1)\n",
    "    else:\n",
    "        early_rul_duration = data_length - early_rul\n",
    "        if early_rul_duration <= 0:\n",
    "            return np.arange(data_length-1, -1, -1)\n",
    "        else:\n",
    "            return np.append(early_rul*np.ones(shape = (early_rul_duration,)), np.arange(early_rul-1, -1, -1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def process_input_data_with_targets(input_data, target_data = None, window_length = 1, shift = 1):\n",
    "    \"\"\"Depending on values of window_length and shift, this function generates batchs of data and targets \n",
    "    from input_data and target_data.\n",
    "    \n",
    "    Number of batches = np.floor((len(input_data) - window_length)/shift) + 1\n",
    "    \n",
    "    **We don't check input dimensions uisng exception handling. So readers should be careful while using these\n",
    "    functions. If input data are not of desired dimension, either error occurs or something undesirable is \n",
    "    produced as output.**\n",
    "    \n",
    "    Arguments:\n",
    "        input_data: input data to function (Must be 2 dimensional)\n",
    "        target_data: input rul values (Must be 1D array)s\n",
    "        window_length: window length of data\n",
    "        shift: Distance by which the window moves for next batch. This is closely related to overlap\n",
    "               between data. For example, if window length is 30 and shift is 1, there is an overlap of \n",
    "               29 data points between two consecutive batches.\n",
    "        \n",
    "    \"\"\"\n",
    "    num_batches = np.int(np.floor((len(input_data) - window_length)/shift)) + 1\n",
    "    num_features = input_data.shape[1]\n",
    "    output_data = np.repeat(np.nan, repeats = num_batches * window_length * num_features).reshape(num_batches, window_length,\n",
    "                                                                                                  num_features)\n",
    "    if target_data is None:\n",
    "        for batch in range(num_batches):\n",
    "            output_data[batch,:,:] = input_data[(0+shift*batch):(0+shift*batch+window_length),:]\n",
    "        return output_data\n",
    "    else:\n",
    "        output_targets = np.repeat(np.nan, repeats = num_batches)\n",
    "        for batch in range(num_batches):\n",
    "            output_data[batch,:,:] = input_data[(0+shift*batch):(0+shift*batch+window_length),:]\n",
    "            output_targets[batch] = target_data[(shift*batch + (window_length-1))]\n",
    "        return output_data, output_targets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def process_test_data(test_data_for_an_engine, window_length, shift, num_test_windows = 1):\n",
    "    \"\"\" This function takes test data for an engine as first input. The next two inputs\n",
    "    window_length and shift are same as other functins. \n",
    "    \n",
    "    Finally it takes num_test_windows as the last input. num_test_windows sets how many examplles we\n",
    "    want from test data (from last). By default it extracts only the last example.\n",
    "    \n",
    "    The function return last examples and number of last examples (a scaler) as output. \n",
    "    We need the second output later. If we are extracting more than 1 last examples, we have to \n",
    "    average their prediction results. The second scaler halps us do just that.\n",
    "    \"\"\"\n",
    "    max_num_test_batches = np.int(np.floor((len(test_data_for_an_engine) - window_length)/shift)) + 1\n",
    "    if max_num_test_batches < num_test_windows:\n",
    "        required_len = (max_num_test_batches -1)* shift + window_length\n",
    "        batched_test_data_for_an_engine = process_input_data_with_targets(test_data_for_an_engine[-required_len:, :],\n",
    "                                                                          target_data = None,\n",
    "                                                                          window_length = window_length, shift = shift)\n",
    "        return batched_test_data_for_an_engine, max_num_test_batches\n",
    "    else:\n",
    "        required_len = (num_test_windows - 1) * shift + window_length\n",
    "        batched_test_data_for_an_engine = process_input_data_with_targets(test_data_for_an_engine[-required_len:, :],\n",
    "                                                                          target_data = None,\n",
    "                                                                          window_length = window_length, shift = shift)\n",
    "        return batched_test_data_for_an_engine, num_test_windows"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "There are two scaling strategies that we can employ. We can scale columnwise, ignoring individual engine based scaling. Or we can scale enginewise."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processed trianing data shape:  (21820, 30, 15)\n",
      "Processed training ruls shape:  (21820,)\n",
      "Processed test data shape:  (500, 30, 15)\n",
      "True RUL shape:  (100,)\n"
     ]
    }
   ],
   "source": [
    "test_data = pd.read_csv(\"/home/biswajit/data/cmapss_data/test_FD003.txt\", sep = \"\\s+\", header = None)\n",
    "true_rul = pd.read_csv(\"/home/biswajit/data/cmapss_data/RUL_FD003.txt\", sep = '\\s+', header = None)\n",
    "\n",
    "window_length = 30\n",
    "shift = 1\n",
    "early_rul = 125            \n",
    "processed_train_data = []\n",
    "processed_train_targets = []\n",
    "\n",
    "# How many test windows to take for each engine. If set to 1 (this is the default), only last window of test data for \n",
    "# each engine is taken. If set to a different number, that many windows from last are taken. \n",
    "# Final output is the average output of all windows.\n",
    "num_test_windows = 5     \n",
    "processed_test_data = []\n",
    "num_test_windows_list = []\n",
    "\n",
    "columns_to_be_dropped = [0,1,2,3,4,5,9,14,20,22,23]\n",
    "\n",
    "train_data_first_column = train_data[0]\n",
    "test_data_first_column = test_data[0]\n",
    "\n",
    "# Scale data for all engines\n",
    "scaler = StandardScaler()\n",
    "train_data = scaler.fit_transform(train_data.drop(columns = columns_to_be_dropped))\n",
    "test_data = scaler.transform(test_data.drop(columns = columns_to_be_dropped))\n",
    "\n",
    "train_data = pd.DataFrame(data = np.c_[train_data_first_column, train_data])\n",
    "test_data = pd.DataFrame(data = np.c_[test_data_first_column, test_data])\n",
    "\n",
    "num_train_machines = len(train_data[0].unique())\n",
    "num_test_machines = len(test_data[0].unique())\n",
    "\n",
    "# Process training and test data sepeartely as number of engines in training and test set may be different.\n",
    "# As we are doing scaling for full dataset, we are not bothered by different number of engines in training and test set.\n",
    "\n",
    "# Process trianing data\n",
    "for i in np.arange(1, num_train_machines + 1):\n",
    "    temp_train_data = train_data[train_data[0] == i].drop(columns = [0]).values\n",
    "    \n",
    "    # Verify if data of given window length can be extracted from training data\n",
    "    if (len(temp_train_data) < window_length):\n",
    "        print(\"Train engine {} doesn't have enough data for window_length of {}\".format(i, window_length))\n",
    "        raise AssertionError(\"Window length is larger than number of data points for some engines. \"\n",
    "                             \"Try decreasing window length.\")\n",
    "        \n",
    "    temp_train_targets = process_targets(data_length = temp_train_data.shape[0], early_rul = early_rul)\n",
    "    data_for_a_machine, targets_for_a_machine = process_input_data_with_targets(temp_train_data, temp_train_targets, \n",
    "                                                                                window_length = window_length, shift = shift)\n",
    "    \n",
    "    processed_train_data.append(data_for_a_machine)\n",
    "    processed_train_targets.append(targets_for_a_machine)\n",
    "\n",
    "processed_train_data = np.concatenate(processed_train_data)\n",
    "processed_train_targets = np.concatenate(processed_train_targets)\n",
    "\n",
    "# Process test data\n",
    "for i in np.arange(1, num_test_machines + 1):\n",
    "    temp_test_data = test_data[test_data[0] == i].drop(columns = [0]).values\n",
    "    \n",
    "    # Verify if data of given window length can be extracted from test data\n",
    "    if (len(temp_test_data) < window_length):\n",
    "        print(\"Test engine {} doesn't have enough data for window_length of {}\".format(i, window_length))\n",
    "        raise AssertionError(\"Window length is larger than number of data points for some engines. \"\n",
    "                             \"Try decreasing window length.\")\n",
    "    \n",
    "    # Prepare test data\n",
    "    test_data_for_an_engine, num_windows = process_test_data(temp_test_data, window_length = window_length, shift = shift,\n",
    "                                                             num_test_windows = num_test_windows)\n",
    "    \n",
    "    processed_test_data.append(test_data_for_an_engine)\n",
    "    num_test_windows_list.append(num_windows)\n",
    "\n",
    "processed_test_data = np.concatenate(processed_test_data)\n",
    "true_rul = true_rul[0].values\n",
    "\n",
    "# Shuffle training data\n",
    "index = np.random.permutation(len(processed_train_targets))\n",
    "processed_train_data, processed_train_targets = processed_train_data[index], processed_train_targets[index]\n",
    "\n",
    "print(\"Processed trianing data shape: \", processed_train_data.shape)\n",
    "print(\"Processed training ruls shape: \", processed_train_targets.shape)\n",
    "print(\"Processed test data shape: \", processed_test_data.shape)\n",
    "print(\"True RUL shape: \", true_rul.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Training and validation split\n",
    "\n",
    "We will take 20% of training data (sampled randomly) as our validation set. We will monitor the training of our model using the validation set."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Processed train data shape:  (17456, 30, 15)\n",
      "Processed validation data shape:  (4364, 30, 15)\n",
      "Processed train targets shape:  (17456,)\n",
      "Processed validation targets shape:  (4364,)\n"
     ]
    }
   ],
   "source": [
    "processed_train_data, processed_val_data, processed_train_targets, processed_val_targets = train_test_split(processed_train_data,\n",
    "                                                                                                            processed_train_targets,\n",
    "                                                                                                            test_size = 0.2,\n",
    "                                                                                                            random_state = 48)\n",
    "print(\"Processed train data shape: \", processed_train_data.shape)\n",
    "print(\"Processed validation data shape: \", processed_val_data.shape)\n",
    "print(\"Processed train targets shape: \", processed_train_targets.shape)\n",
    "print(\"Processed validation targets shape: \", processed_val_targets.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def create_compiled_model():\n",
    "    model = Sequential([\n",
    "        layers.LSTM(128, input_shape = (window_length, processed_train_data.shape[2]), return_sequences=True, activation = \"tanh\"),\n",
    "        layers.LSTM(64, activation = \"tanh\", return_sequences=True),\n",
    "        layers.LSTM(32, activation = \"tanh\"),\n",
    "        layers.Dense(96, activation = \"relu\"),\n",
    "        layers.Dense(128, activation = \"relu\"),\n",
    "        layers.Dense(1)\n",
    "    ])\n",
    "    model.compile(loss = \"mse\", optimizer = tf.keras.optimizers.Adam(learning_rate=0.001))\n",
    "    return model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/10\n",
      "137/137 - 13s - loss: 2723.5195 - val_loss: 300.7059\n",
      "Epoch 2/10\n",
      "137/137 - 12s - loss: 249.4946 - val_loss: 219.6474\n",
      "Epoch 3/10\n",
      "137/137 - 12s - loss: 177.6304 - val_loss: 155.9207\n",
      "Epoch 4/10\n",
      "137/137 - 12s - loss: 136.1662 - val_loss: 133.6547\n",
      "Epoch 5/10\n",
      "137/137 - 12s - loss: 122.2479 - val_loss: 146.9555\n",
      "Epoch 6/10\n",
      "137/137 - 12s - loss: 109.1960 - val_loss: 117.2241\n",
      "Epoch 7/10\n",
      "137/137 - 12s - loss: 107.1739 - val_loss: 119.0544\n",
      "Epoch 8/10\n",
      "137/137 - 12s - loss: 98.2998 - val_loss: 96.1375\n",
      "Epoch 9/10\n",
      "137/137 - 12s - loss: 90.4511 - val_loss: 103.6843\n",
      "Epoch 10/10\n",
      "137/137 - 12s - loss: 86.2585 - val_loss: 92.5205\n"
     ]
    }
   ],
   "source": [
    "model = create_compiled_model()\n",
    "history = model.fit(processed_train_data, processed_train_targets, epochs = 10,\n",
    "                    validation_data = (processed_val_data, processed_val_targets),\n",
    "                    batch_size = 128, verbose = 2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Why did we run the model only for 10 epochs, even though the validation loss seems to be decreasing? Well, while training this model for more epochs, we previously observed that it is possible to decrease the validation loss to a very small number. But in that case, our actual test loss is not that great. This is because our model is overfitting the validation dataset. So to get a good test performance, we should stop our training at an intermediate value of the validation loss. We chose 10 epochs as that gives a good enough test error."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE:  15.540003723169518\n"
     ]
    }
   ],
   "source": [
    "rul_pred = model.predict(processed_test_data).reshape(-1)\n",
    "preds_for_each_engine = np.split(rul_pred, np.cumsum(num_test_windows_list)[:-1])\n",
    "mean_pred_for_each_engine = [np.average(ruls_for_each_engine, weights = np.repeat(1/num_windows, num_windows)) \n",
    "                             for ruls_for_each_engine, num_windows in zip(preds_for_each_engine, num_test_windows_list)]\n",
    "RMSE = np.sqrt(mean_squared_error(true_rul, mean_pred_for_each_engine))\n",
    "print(\"RMSE: \", RMSE)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Save the model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "tf.keras.models.save_model(model, \"FD003_LSTM_piecewise_RMSE_\"+ str(np.round(RMSE, 4)) + \".h5\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will now compute the RMSE by taking only last example of each engine."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RMSE (Taking only last examples):  14.025969457438789\n"
     ]
    }
   ],
   "source": [
    "indices_of_last_examples = np.cumsum(num_test_windows_list) - 1\n",
    "preds_for_last_example = np.concatenate(preds_for_each_engine)[indices_of_last_examples]\n",
    "\n",
    "RMSE_new = np.sqrt(mean_squared_error(true_rul, preds_for_last_example))\n",
    "print(\"RMSE (Taking only last examples): \", RMSE_new)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you are not convinced by above calculations, take a look at the last section of [this notebook](https://github.com/biswajitsahoo1111/rul_codes_open/blob/master/notebooks/cmapss_notebooks/CMAPSS_FD001_xgboost_piecewise_linear_degradation_model.ipynb)."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For CMAPSS data, along with RMSE another metric (S-score) is usually reported in literature. S-score is defined as:\n",
    "\n",
    "$$S= \\sum_{i=1}^N{s_i}$$\n",
    "\n",
    "where, \n",
    "\n",
    "$$\n",
    "\\begin{equation}\n",
    "    s_i=\n",
    "    \\begin{cases}\n",
    "      (e^{-\\frac{d_i}{13}})-1, & \\text{for}\\ d_i < 1 \\\\\n",
    "      (e^{\\frac{d_i}{10}})-1, & \\text{for}\\ d_i \\geq 1\\\\\n",
    "    \\end{cases}\n",
    "  \\end{equation}\n",
    "  $$\n",
    "  \n",
    "We can compute the S-metric as follows."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "def compute_s_score(rul_true, rul_pred):\n",
    "    \"\"\"\n",
    "    Both rul_true and rul_pred should be 1D numpy arrays.\n",
    "    \"\"\"\n",
    "    diff = rul_pred - rul_true\n",
    "    return np.sum(np.where(diff < 0, np.exp(-diff/13)-1, np.exp(diff/10)-1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "S-score:  290.3501591041427\n"
     ]
    }
   ],
   "source": [
    "s_score = compute_s_score(true_rul, preds_for_last_example)\n",
    "print(\"S-score: \", s_score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot true and predicted RUL values\n",
    "plt.plot(true_rul, label = \"True RUL\", color = \"red\")\n",
    "plt.plot(preds_for_last_example, label = \"Pred RUL\", color = \"blue\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It is very likely that readers may get sligtly different results while running this notebook on their system. This happens because of the nondeterministic nature of some deep learning operations and dependence of libraries like `Tensorflow` on computer architecture. Therefore, to make our results reproducible, we also share saved models of all our notebooks. All saved models can be found [here](https://github.com/biswajitsahoo1111/rul_codes_open/tree/master/saved_models/cmapss). A notebook describing the procedure to use the saved models can be found [here](https://github.com/biswajitsahoo1111/rul_codes_open/blob/master/notebooks/cmapss_notebooks/CMAPSS_using_saved_model_deep_learning.ipynb). As a final note remember that hyperparameter tuning is more of an art than science. It is possible to obtain better results than what has been obtained here by choosing better set of hyperparameters.\n",
    "\n",
    "For other reproducible results on RUL, interested readers can visit my [project page](https://biswajitsahoo1111.github.io/rul_codes_open). "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "tf_cpu_23",
   "language": "python",
   "name": "tf_cpu_23"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
